package sn.gandal.agriculture.agrimobile.j2me.dao;

import java.io.IOException;
import java.util.Vector;
import javax.microedition.rms.RecordStoreException;
import sn.gandal.agriculture.agrimobile.j2me.businessObjects.Membre;
import sn.gandal.agriculture.agrimobile.j2me.businessObjects.Adresse;

/**
 *
 * @author dysow
 */
public interface IServiceDAO
{

    /**Avoir la liste de tous les abonnés
     * 
     */
    public Membre[] getAbonneList();

    public Membre[] getAbonneList(String idAbonne, String nomMere, String nom, String prenom);

    /**
     * V�rifie si un id abonné existe déjà
     * @param idAbonne
     * @return
     */
    public boolean abonneIdExiste(String idAbonne);

   

    /**
     * Ajouter un abonné dans la base
     * @param abonne
     * @return
     */
    public boolean ajouterAbonne(Membre abonne);

    /**
     * Modifier un abonné dans la base
     * @param abonne
     * @return
     */
    public boolean modifierAbonne(Membre abonne);


    /**
     * Supprimer un abonné dans la base
     * @param abonne
     * @return
     */
    public boolean supprimerAbonne(int abonneIdInt);

    /**
     * Récupère l'identifiant de l'agent de pesée enregistré. S'il n'y a aucun identifiant présent, cette méthode retourne ""
     * @return
     */
    public int getAgentDePeseeIdentifiant() throws RecordStoreException, IOException;

    /**
     * Enregistre un identifiant pour l'agent de pesée
     * @return
     */

    public String getAbonneId();


    public Membre[] getRechercheAbonneList(int abonneId, String prenom, String nom, String prenomMere, String nomMere);

    public boolean agentDePeseeExists(String adpId);

    public void deleteAllData();

    public void reinitialiseAbonneList(Vector vecAbonneList) throws RecordStoreException, IOException;

    public Membre getAbonneDetails(int idAbonneInt);

    public void reinitialiseConvocationList(Vector vector) throws RecordStoreException, IOException;

    public void saveWebAdress(Adresse adresse) throws RecordStoreException, IOException;

    public Membre[] getListAbonnesModifies() throws RecordStoreException, IOException;

    public boolean isAbonneWeighedToday(int idAbonne);

   
   
    public Vector getListPesees(int idAbonne);

   // public boolean abonneDesabonner(Membre abonne);

   // public boolean abonneDeceder(Membre abonneDeceder);

    public boolean remettreConvocation(int abonneId) throws RecordStoreException, IOException;

    public void effacerConvocation(int abonneId) throws RecordStoreException, IOException;

    public Membre[] getListAbonnesActif() throws RecordStoreException, IOException;
    public void updateIdentifiantsStore(Vector abonne) throws RecordStoreException, IOException;
    public int generateNewAbonneId();
    public boolean isAbonnesLoaded()throws RecordStoreException;
}
